contents

CISCRISC는 CPU의 명령어 집합 구조(ISA) 를 설계하는 두 가지 근본적이고 상반된 철학입니다. ISA는 프로세서가 이해하는 명령어들의 어휘집입니다. CISC와 RISC 중 어떤 것을 선택하느냐에 따라 하드웨어의 복잡성, 실행 속도, 전력 소비, 그리고 소프트웨어 컴파일러의 역할이 결정됩니다.

간단히 말해, CISC(복합 명령어 집합 컴퓨터) 는 강력하고 복잡한 명령어를 사용하여 가능한 한 적은 수의 어셈블리 코드 라인으로 작업을 완료하려는 방식입니다. RISC(축소 명령어 집합 컴퓨터) 는 동일한 작업을 많은 수의 단순하고 빠른 명령어를 실행하여 완료하려는 방식입니다.

비유:


CISC (복합 명령어 집합 컴퓨터) 🧠

CISC는 컴퓨팅 초창기(1960년대-1970년대)의 지배적인 철학이었습니다. 당시에는 메모리가 느리고 비쌌으며, 컴파일러도 그리 정교하지 않았습니다. CISC의 목표는 프로그래머와 컴파일러의 작업을 단순화하기 위해 하드웨어를 "더 똑똑하게" 만드는 것이었습니다.

철학

"하드웨어가 더 많은 일을 하게 해서, 소프트웨어가 할 일을 줄이자."

특징

예시

메모리 위치(locA, locB)에 있는 두 숫자를 곱하여 그 결과를 locA에 저장하기:

; 단일하고 강력한 CISC 명령어
MUL locA, locB

CPU가 데이터 가져오기, 계산, 저장을 모두 내부적으로 처리합니다.

장단점

대표적인 예: 인텔 x86 (대부분의 데스크톱 및 노트북에서 사용), 모토로라 68k.


RISC (축소 명령어 집합 컴퓨터) ⚡️

RISC는 1980년대에 CISC의 복잡성에 대한 대응으로 등장했습니다. 연구자들은 대부분의 프로그램에서 소수의 간단한 명령어들이 압도적으로 많이 사용된다는 점에 주목했습니다. RISC 철학은 이 일반적인 경우를 가능한 한 빠르게 만드는 것입니다.

철학

"하드웨어는 단순하고 빠르게 만들고, 똑똑한 소프트웨어(컴파일러)가 어려운 일을 하게 하자."

특징

예시

이전과 동일한 곱셈 작업을 수행하기:

; 여러 개의 단순한 RISC 명령어
LOAD R1, locA     ; 메모리 위치 A에서 데이터를 레지스터 1로 로드
LOAD R2, locB     ; 메모리 위치 B에서 데이터를 레지스터 2로 로드
MUL R1, R2        ; 두 레지스터의 값을 곱함
STORE locA, R1    ; 결과를 레지스터 1에서 메모리 위치 A로 저장

이는 더 많은 코드 라인을 필요로 하지만, 각 명령어는 극도로 단순하고 매우 빠르게 (종종 단일 클럭 사이클에) 실행될 수 있습니다.

장단점

대표적인 예: ARM (거의 모든 스마트폰과 태블릿에서 지배적), MIPS, PowerPC, RISC-V (현대적인 개방형 표준 ISA).


현대의 현실: 흐릿해진 경계

엄격한 RISC 대 CISC 논쟁은 이제 다소 역사적인 것이 되었습니다. 현대의 고성능 프로세서들은 하이브리드 형태입니다.

현대의 인텔 x86 (CISC) 프로세서는 복잡한 CISC 명령어를 실제로 직접 실행하지 않습니다. 대신, CPU의 프론트엔드에 있는 특별한 디코더가 들어오는 복잡한 x86 명령어를 마이크로옵(micro-ops) 이라는 더 간단하고 RISC와 유사한 내부 명령어로 변환합니다.

CPU의 강력한 코어는 본질적으로 이러한 마이크로옵을 실행하는 고도로 최적화된 RISC 엔진입니다.

이 하이브리드 접근 방식은 현대 CISC 프로세서에 두 세계의 장점을 모두 제공합니다.

  1. 하위 호환성: 방대한 기존 x86 소프트웨어 라이브러리를 실행할 수 있습니다.
  2. 성능: RISC와 유사한 실행 코어의 속도와 효율성 이점을 얻습니다.

결론적으로, CISC와 RISC는 프로세서 설계를 위한 두 가지 다른 길을 나타냅니다. 고성능 CPU에서는 그 경계가 흐려졌지만, 단순성, 속도, 저전력 소비라는 핵심 RISC 원칙은 모바일 및 임베디드 컴퓨팅 세계에서 지배적인 힘이 되었습니다.

references